Server software, such as application servers, can provide application infrastructure for modern business systems. Application servers can support applications that share data and resources with other systems, and can generate dynamic information for Web pages and other user interfaces. The application servers can provide a layer of functions and services between Web servers and underlying applications and databases. As companies deploy large applications to support secure transactions and use Web and XML protocols, the growing complexity of the applications can require a managed environment for the applications. Globally deployed applications with complex business logic potentially servicing tens of thousands of concurrent users in real-time, require a scalability and reliability that makes quality application servers a necessity.
Application Servers can provide functions and services, such as load balancing, fault tolerance, web services, network transparency, legacy integration, transaction management, security, messaging, multi-threading, persistence, database connectivity, resource pooling, and development, testing, and packaging facilities. Built-in functionality from the application server can speed application development and can relieve developers of the effort and expense of creating important services on their own. Applications can then provide more functionality, be developed faster, be less costly to maintain, and provide a greater return on investment.